%{
#define TRUE 1
#define FALSE 0

int font_lisp=FALSE;
 int fonopen=0;
 int fonclose=0;

#define MESG "<!-- open: %d, close: %d -->"


%}

%%
"1" {
  printf(MESG,++fonopen,fonclose);
  printf("<font class=\"main\">");
}

"2" {
  printf(MESG,++fonopen,fonclose);
  printf("<font class=\"italic\">");
}

"3" {
  //  printf("\n<!-- open: %d, close: %d -->\n",++fonopen,fonclose);
  printf(MESG,++fonopen,fonclose);
  //  printf("<font class=\"lisp\">");
  //  printf("<br><font color='red'>lisp_font_starts_here --</font>");
  printf("<font class=\"lisp\">");
}

"4" {
  printf(MESG,++fonopen,fonclose);
  printf("<font class=\"chapter\">");

}

"5" {
  printf(MESG,++fonopen,fonclose);
  printf("<font class=\"section\">");
}

"6" {
  printf(MESG,++fonopen,fonclose);
  printf("<font class=\"subsection\">");
}

"7" {
  printf(MESG,++fonopen,fonclose);
  printf("<font class=\"lispcode\">");
}

"8" {
  printf(MESG,++fonopen,fonclose);
  printf("<font class=\"funcname\">");
}

"*" {
  //  if(font_lisp)
  //    {
  //      printf("<font color='red'>-- lisp_font_ends_here</font></br>");
  //      font_lisp=FALSE;
  //    }

  printf("</font>");
  printf("<!-- open: %d, close: %d -->",fonopen,++fonclose);

  printf("%s",
	 fonclose==fonopen ? 
	 " <!-- MATCHED MATCHED MATCHED -->" : 
	 "");
}    




"" printf("&pi;");
"" printf("&pi;");		/* bug? */

"" printf("&and;");		/* SAIL 004 */
"" printf("&otimes;");	/* SAIL 026 */
"" printf("&harr;");	/* SAIL 027 */
"" printf("&larr;");	/* SAIL 030 */
"" printf("&rarr;");	/* SAIL 031 */
"" printf("&ne;");		/* SAIL 032 */
"" printf("&loz;");		/* SAIL 033 */
"" printf("&le;");	        /* SAIL 034 */
"" printf("&ge;");		/* SAIL 035 */
"" printf("&ge;");		/* SAIL 035 bug?*/
"" printf("<u><font color='green'>SAIL</font></u>");
"" printf("&thinsp;");	/* THIN SPACE */


%%
